This function generates a list of symbols from a given list of symbols and a list of proportional ratios. The function can be used for melody symbols, note-lengths, zone-lengths or velocity values.
The symbols are organised in a random order but with a definable seed value controlling the random selection. Use with the function assemble to create chains of variants from a single symbol and ratio list:
(gen-collect 0.12 2 'list
'(gen-symbol-ratio nil '(2 6 4) '(a b c)))
--> ((b a b b c c b a b c b c) (c b b c b b b a a b c c))